Vehicle systems, such as power train systems, body control systems, antilock braking systems, and the like, are increasingly controlled by one or more electronically controlled units (ECUs). Each ECU includes software for its particular vehicle system, such as operating control software and calibration files including gains and setpoints. The ECUs are responsive to driver demands and vehicle conditions to control the vehicle system operations. From time to time, the software is updated to reflect software improvements and corrections by reflashing software stored in flash memory and installing new software versions. Software is also updated to suit user preferences.
Software updates present several problems. Presently, the update depends on the owner bringing the vehicle to the dealer for the software update. The owner may not receive the notice of the update. The owner may skip a useful update due to the inconvenience in time and effort involved in taking the vehicle to the dealer. The vehicle manufacturer also incurs an expense, since the vehicle manufacturer typically reimburses the dealer for the update installation under the vehicle warranty.
Another problem with software updates is ensuring that the software version for a particular ECU is correct and compatible with the software versions present in other ECUs. In one example, a vehicle has a first ECU and a second ECU. If the first ECU is to be updated to a software version ECU1—1.1.2, the second ECU can be required to have software version ECU2—3.2.1 installed for the first ECU to operate properly. If the second ECU is using an older software version, such as ECU2—3.1.8, the second ECU must be updated before or at the same time that the first ECU is updated to software version ECU1—1.1.2.
Yet another problem with software updates occurs with replacement of an ECU. The dealer replaces the ECU and downloads the current software for the replaced ECU. The replaced ECU software may be incompatible with the software for other ECUs, which may result in sub-optimal vehicle performance.
It would be desirable to have a method and system for remote reflashing of software through a mobile vehicle communication system that overcomes the above disadvantages.